package com.ssy.lingxi.member.merchant.model.vo.lifecycle.request;

import com.ssy.lingxi.member.merchant.model.vo.basic.request.FileUploadVO;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 会员考评项目新增VO
 * @author yzc
 * @version 2.0.0
 * @date 2021/5/17
 */
public class MemberAppraisalItemAddVO implements Serializable {
    private static final long serialVersionUID = 5916666710876479648L;

    /**
     * 项目类型 0-自定义 1-供货及时率 2-供货合格率
     */
    @NotNull(message = "项目类型不能为空")
    private Integer type;

    /**
     * 项目名称
     */
    @NotBlank(message = "考评项目不能为空")
    private String name;

    /**
     * 项目内容
     */
    @NotBlank(message = "项目内容不能为空")
    private String content;

    /**
     * 考评人用户id
     */
    private Long userId;

    /**
     * 发送考评人打分 0-否 1-是
     */
    private Integer sendAppraisal;

    /**
     * 评分权重
     */
    @NotNull(message = "评分权重不能为空")
    @Min(value = 0, message = "单项评分权重为0-100")
    @Max(value = 100, message = "单项评分权重为0-100")
    private Integer scoreWeight;

    /**
     * 考评计分
     */
    private BigDecimal grade;

    /**
     * 考评模板
     */
    private List<FileUploadVO> templates;

    /**
     * 考评报告
     */
    private List<FileUploadVO> reports;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Integer getSendAppraisal() {
        return sendAppraisal;
    }

    public void setSendAppraisal(Integer sendAppraisal) {
        this.sendAppraisal = sendAppraisal;
    }

    public Integer getScoreWeight() {
        return scoreWeight;
    }

    public void setScoreWeight(Integer scoreWeight) {
        this.scoreWeight = scoreWeight;
    }

    public BigDecimal getGrade() {
        return grade;
    }

    public void setGrade(BigDecimal grade) {
        this.grade = grade;
    }

    public List<FileUploadVO> getTemplates() {
        return templates;
    }

    public void setTemplates(List<FileUploadVO> templates) {
        this.templates = templates;
    }

    public List<FileUploadVO> getReports() {
        return reports;
    }

    public void setReports(List<FileUploadVO> reports) {
        this.reports = reports;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }
}
